//#include "UGShake.h"
//
//namespace ugame {
//    UGShake::UGShake() : _strength_x(0), _strength_y(0), _initial_x(0), _initial_y(0) {
//    }
//    
//    UGShake* UGShake::actionWithDuration(float d, float strength) {
//        return actionWithDuration( d, strength, strength );
//    }
//    
//    UGShake* UGShake::actionWithDuration(float duration, float strength_x, float strength_y) {
//        UGShake *p_action = new UGShake();
//        p_action->initWithDuration(duration, strength_x, strength_y);
//        p_action->autorelease();
//        
//        return p_action;
//    }
//    
//    bool UGShake::initWithDuration(float duration, float strength_x, float strength_y) {
//        if (ActionInterval::initWithDuration(duration)) {
//            _strength_x = strength_x;
//            _strength_y = strength_y;
//            return true;
//        }
//        
//        return false;
//    }
//    
//    float fgRangeRand(float min, float max) {
//        float rnd = ((float) rand() / (float) RAND_MAX);
//        return rnd * (max - min) + min;
//    }
//    
//    void UGShake::update(float time) {
//        float randx = fgRangeRand(-_strength_x, _strength_x);
//        float randy = fgRangeRand(-_strength_y, _strength_y);
//        
//        _target->setPosition(Point(_initial_x, _initial_y)+Point(randx, randy));
//    }
//    
//    void UGShake::startWithTarget(Node *pTarget) {
//        ActionInterval::startWithTarget(pTarget);
//        
//        _initial_x = pTarget->getPosition().x;
//        _initial_y = pTarget->getPosition().y;
//    }
//    
//    void UGShake::stop() {
//        _target->setPosition(Point(_initial_x, _initial_y));
//        
//        ActionInterval::stop();
//    }
//}